package com.ssy.lingxi.member.merchant.model.vo.platform.request;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.List;

/**
 * 平台后台 - 菜单管理 - 新增菜单
 * @author 万宁
 * @version 2.0.0
 * @date 2022-04-14
 */
public class PlatformMenuVO implements Serializable {
    private static final long serialVersionUID = 1820369015758700864L;

    /**
     * 上级菜单Id，如无上级菜单，为0或Null或不传
     */
    private Long parentId;

    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    @Size(max = 50, message = "菜单名称最长50个字符")
    private String title;

    /**
     * 菜单顺序，最小值为1
     */
    @NotNull
    @Min(value = 1, message = "菜单顺序最小为1, 最大为10000")
    @Max(value = 10000, message = "菜单顺序最小为1, 最大为10000")
    private Integer order;

    /**
     * 菜单Url
     */
    @NotBlank(message = "菜单Url不能为空")
    @Size(max = 400, message = "菜单Url最长400个字符")
    private String url;

    /**
     * 是否可配置数据权限 0-否，1-是
     */
    @NotNull(message = "是否可配置数据权限标识取值范围：0-否，1-是")
    @Min(value = 0, message = "是否可配置数据权限标识取值范围：0-否，1-是")
    @Max(value = 1, message = "是否可配置数据权限标识取值范围：0-否，1-是")
    private Integer dataAuthConfig;

    /**
     * 按钮列表
     */
    @Valid
    private List<PlatformButtonVO> buttons;

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getOrder() {
        return order;
    }

    public void setOrder(Integer order) {
        this.order = order;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Integer getDataAuthConfig() {
        return dataAuthConfig;
    }

    public void setDataAuthConfig(Integer dataAuthConfig) {
        this.dataAuthConfig = dataAuthConfig;
    }

    public List<PlatformButtonVO> getButtons() {
        return buttons;
    }

    public void setButtons(List<PlatformButtonVO> buttons) {
        this.buttons = buttons;
    }
}
